package JavaSEAdvance.day10_MapAndStream.D10_5HomeWork;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * @author Xiao
 * @date 2021/7/28
 */
public class Test2 {
    /**
     * 问题1：
     *     现在有两个 ArrayList 集合存储队伍当中的多个成员姓名，要求使用Stream方式进行以
     *     下若干操作步骤：
     *     1. 第一个队伍只要名字为3个字的成员姓名；
     *     2. 第一个队伍筛选之后只要前6个人；
     *     3. 第二个队伍只要姓张的成员姓名；
     *     4. 第二个队伍筛选之后不要前1个人；
     *     5. 将两个队伍合并为一个队伍；
     *     6. 根据姓名创建Student对象；
     *     7. 打印整个队伍的Student对象信息。
     */
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(List.of(
                "阿良", "左右", "平安", "小扁担", "大水怪","老瞎子","夏洛特",
                "王昭君","杨贵妃","沈梦溪","王二虎"));
        ArrayList<String> list2 = new ArrayList<>(List.of(
                "张三", "李四", "王五", "赵六", "钱七","张远山","张翠花",
                "张无忌","张三丰","赵丽颖","刘亦菲"));
        Stream<String> stream1 = list1.stream().filter(name -> name.length() == 3).limit(6);
        Stream<String> stream2 = list2.stream().filter(name -> name.startsWith("张")).skip(1);
        Stream.concat(stream1,stream2).forEach(name -> System.out.println(new Student(name)));
    }
}
